const arr = [
    {
        name: 'hua',
        age: 20
    },
    {
        name:'qiang',
        age:30,
    },
    {
        name:'yue',
        age:25,
    },
    {
        name:'hua',
        age:24
    }
]
/**
 * 
 * @param {object[]} arr 需要合并同类项的对象数组
 * @param {string} str 以指定的 key 区分同类
 * @returns 返回一个数组套数组 里面的每一个数组中的对象都是同类的
 */
function classification(arr,str){
    let num = []
    let newArr = []
    arr.forEach((item,index)=>{
        if( num && num.indexOf(index) != -1) return
        let lineArr = [] 
        arr.forEach((v,i)=>{
            if(item[str] === v[str]){
                num.push(i)
                lineArr.push(v)
            }
        })
        newArr.push(lineArr)
    })
    return newArr
}

console.log(classification(arr,'name'));